{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# KEGGutils Tutorial 1 : Enzymatic Correlation Graphs\n",
    "## ...using just KEGGutils basic functions\n",
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"../img/logo_cut.png\" alt=\"Drawing\" style=\"width: 300px;\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### First things first\n",
    "Let's import `KEGGutils` and `networkx`, on which `KEGGutils` is based, with aliases ( with maybe some module path scope adjusting first )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os,sys,inspect\n",
    "currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))\n",
    "parentdir = os.path.dirname(currentdir)\n",
    "sys.path.insert(0,parentdir)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import KEGGutils as kg\n",
    "import networkx as nx"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "check that the latest version of `KEGGutils` is installed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'0.3.2'"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kg.__version__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "and we're ready to start our tutorial"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "let's remove the cached files to use the freshest available data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "> deleting the following files from C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\C00002-image.gif\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\compound-C7H10O5-formula\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\D00564-ddi\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\ece-info\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\eco-ncbi-geneid-conv\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\ecs-ECs1206-aaseq\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\ecs-ECs1206-description\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\enzyme-hsa-link\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\genes-ncbi-geneid-19831932-conv\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\genes-shiga-toxin\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\hsa-info\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\hsa-list\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\hsa05130-image.png\n",
      "C:\\Users\\filippo.castelli4\\Documents\\GitHub\\KEGGutils\\tutorials\\kegg_downloads\\hsa05130-kgml\n"
     ]
    }
   ],
   "source": [
    "kg.delete_cached_files()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The interesting stuff"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "let's download the disease list from KEGG:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "INFO:root:> Downloading disease-list from KEGG at http://rest.kegg.jp/list/disease\n",
      "INFO:root:succesfully downloaded disease-list\n"
     ]
    }
   ],
   "source": [
    "kegg_diseases = kg.keggapi_list(\"disease\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['ds:H00001',\n",
       " 'ds:H00002',\n",
       " 'ds:H00003',\n",
       " 'ds:H00004',\n",
       " 'ds:H00005',\n",
       " 'ds:H00006',\n",
       " 'ds:H00007',\n",
       " 'ds:H00008',\n",
       " 'ds:H00009',\n",
       " 'ds:H00010']"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kegg_diseases[:10] "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "we can obtain some description on the `ds:H00773` disease or really any kind of KEGG entry using `get_infos()`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " Prints KEGG infos for a given database item \n",
      "    Parameters:\n",
      "        :item (str): KEGG item you want infos about\n",
      "        :verbose (Bool), False: if True get full KEGG description, if False get only first 4 lines\n",
      "        \n"
     ]
    }
   ],
   "source": [
    "print(kg.get_infos.__doc__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Infos on ds:H00773 from KEGG:\n",
      "\n",
      "NAME        Autosomal dominant mental retardation\n",
      "DESCRIPTION Mental retardation (MR) is a neurodevelopmental disorder characterized by low intelligence quotient (IQ) and deficits in adaptive behaviors. Most MR genes identified so far were either located on the X chromosome or are associated with an autosomal recessive mode of inheritance. Recently, a lot of genes associated with autosomal dominant mental retardation have been identified.\n",
      "CATEGORY    Mental and behavioural disorder\n"
     ]
    }
   ],
   "source": [
    "kg.get_infos(\"ds:H00773\", verbose = False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "enabling the `verbose` option will show the full description."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "let's try to download the bipartite graph linking each disease to a set of genes by using `kegg_graph()`, you must specify the source and the target categories: note that human genes are referred with the `hsa` key.\n",
    "\n",
    "You can use the `force_download` option to download the file again overwriting previous copies that you may have already downloaded"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Returns a NetworkX bipartite link graph with nodes from source and target KEGG databases \n",
      "    \n",
      "    Parameters\n",
      "    ----------\n",
      "    source : str\n",
      "        source database\n",
      "    target : str\n",
      "        target database\n",
      "    force_download : bool, optional\n",
      "        if set to True overwrites pre-existing database file with the same name (the default is False, which [default_description])\n",
      "    \n",
      "    Returns\n",
      "    -------\n",
      "    graph\n",
      "        bipartite link graph\n",
      "    \n"
     ]
    }
   ],
   "source": [
    "print(kg.kegg_link_graph.__doc__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "INFO:root:> Downloading hsa-disease-link from KEGG at http://rest.kegg.jp/link/hsa/disease\n",
      "INFO:root:succesfully downloaded hsa-disease-link\n"
     ]
    }
   ],
   "source": [
    "dis_gene = kg.kegg_link_graph(\"disease\", \"hsa\", force_download = False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All `KEGGutils` graph nodes have a `nodetype` attribute which helps us differentiate between different objects in a graph:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'disease'"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nx.get_node_attributes(dis_gene, \"nodetype\")['ds:H00773']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "the list of nodes that are linked to a particular given node can be obtained the same way as with every `networkx` graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "AtlasView({'hsa:55777': {}, 'hsa:81704': {}, 'hsa:1013': {}, 'hsa:84623': {}, 'hsa:8831': {}, 'hsa:2904': {}, 'hsa:1859': {}, 'hsa:2902': {}, 'hsa:547': {}, 'hsa:10369': {}, 'hsa:2036': {}, 'hsa:57492': {}, 'hsa:1778': {}, 'hsa:8289': {}, 'hsa:6598': {}, 'hsa:6597': {}, 'hsa:55690': {}, 'hsa:57459': {}, 'hsa:1499': {}, 'hsa:4208': {}, 'hsa:10664': {}, 'hsa:10472': {}, 'hsa:55209': {}, 'hsa:10522': {}, 'hsa:27245': {}, 'hsa:26053': {}, 'hsa:6664': {}, 'hsa:26040': {}, 'hsa:10771': {}, 'hsa:5813': {}, 'hsa:7994': {}, 'hsa:1804': {}, 'hsa:10087': {}, 'hsa:5528': {}, 'hsa:5518': {}, 'hsa:1917': {}, 'hsa:23040': {}, 'hsa:283489': {}, 'hsa:2782': {}, 'hsa:3097': {}, 'hsa:7204': {}, 'hsa:23152': {}, 'hsa:56479': {}, 'hsa:10274': {}, 'hsa:5879': {}, 'hsa:9320': {}, 'hsa:80155': {}, 'hsa:51111': {}, 'hsa:55870': {}, 'hsa:815': {}, 'hsa:816': {}, 'hsa:9853': {}})"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dis_gene['ds:H00773']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "or using `kg.linked_nodes`, which returns the list of connected nodes, or optionally a dictionary with each node and its `nodetype`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Linked Nodes:\n",
      "        Returns all nodes in graph linked to node\n",
      "        \n",
      "    \n",
      "    Parameters\n",
      "    ----------\n",
      "    graph : Graph\n",
      "        input graph, has to be generated via kegg_link_graph()\n",
      "    node : str\n",
      "        name of a node in graph\n",
      "    return_dict : bool\n",
      "        if True returns a dict {nodes: nodetypes}\n",
      "        \n",
      "    Returns\n",
      "    -------\n",
      "    linked_nodes (dict)\n",
      "         dict of linked nodes { node: nodetype}\n",
      "    linked_nodes (list)\n",
      "        list of linked nodes\n",
      "\n",
      "    .. seealso:: kegg_link_graph()\n",
      "        \n"
     ]
    }
   ],
   "source": [
    "print(kg.linked_nodes.__doc__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "ds_genes = kg.linked_nodes(dis_gene, 'ds:H00773', return_dict = True)\n",
    "ds_genes_list = kg.linked_nodes(dis_gene, 'ds:H00773', return_dict = False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "in this case we obviously expect all the linked node to be human genes marked with `hsa`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['hsa:55777',\n",
       " 'hsa:81704',\n",
       " 'hsa:1013',\n",
       " 'hsa:84623',\n",
       " 'hsa:8831',\n",
       " 'hsa:2904',\n",
       " 'hsa:1859',\n",
       " 'hsa:2902',\n",
       " 'hsa:547',\n",
       " 'hsa:10369']"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ds_genes_list[:10]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "we can find every enzyme associated with each of these genes using the gene-enzyme database from **KEGG**, which we download the same way as the previous one"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "INFO:root:> Downloading enzyme-hsa-link from KEGG at http://rest.kegg.jp/link/enzyme/hsa\n",
      "INFO:root:succesfully downloaded enzyme-hsa-link\n"
     ]
    }
   ],
   "source": [
    "gene_enzyme = kg.kegg_link_graph(\"hsa\", \"enzyme\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "it's possible to use the gene list we obtained before to narrow down a search on the complete KEGG *gene-enzyme* database with `kg.neighbor_graph()`: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Neighbor Subgraph\n",
      "    \n",
      "    Given a Graph and a node list returns the subgraph generated with the nodes\n",
      "    in the node dict, the first neighbors of those nodes, and the edges between\n",
      "    them\n",
      "    \n",
      "    \n",
      "    Parameters:\n",
      "        :kegg_graph (Graph): input graph, has to be generated via kegg_link_graph()\n",
      "        :node_dict (dict): dict of input nodes\n",
      "        :name (str): optional, name of the graph\n",
      "        \n",
      "    Returns:\n",
      "        :neighbor_graph (Graph): graph of node_dict, first neighbors of those nodes        and edges between them\n",
      "    .. seealso:: kegg_link_graph()\n",
      "    \n"
     ]
    }
   ],
   "source": [
    "print(kg.neighbor_graph.__doc__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "ds_gene_enzyme = kg.neighbor_graph(gene_enzyme,\n",
    "                                   ds_genes,\n",
    "                                   keep_isolated_nodes = True,\n",
    "                                   name = \"ds_gene_enzyme\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "the function returns a subgraph of `gene_enzyme` selecting both `ds_genes` nodes and their neighbors in the original graph.\n",
    "\n",
    "Not all `ds_genes` are actually present in `gene_enzyme`, we can represent them as isolated nodes in the new graph using the `keep_isolated_nodes` option"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Graphic functionality is provided by `kg.draw()`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Graph drawing made a bit easier\n",
      "    \n",
      "    Parameters:\n",
      "        :graph (Graph): input graph, has to be generated via kegg_link_graph()\n",
      "        :layout (str): layout type, choose from 'bipartite_layout',        'circular_layout','kamada_kawai_layout','random_layout',\\ 'shell_layout',        'spring_layout','spectral_layout'\n",
      "        :filename (str): if a filename is selected saves the plot as filename.png\n",
      "        :title (str): title for the graph\n",
      "        :return_ax: if True returns ax for plot\n",
      "        \n",
      "    Returns:\n",
      "        :ax (list): optional ax for the plot\n",
      "\n",
      "\n",
      "        \n"
     ]
    }
   ],
   "source": [
    "print(kg.draw.__doc__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\filippo.castelli4\\AppData\\Local\\Continuum\\anaconda3\\envs\\KEGGenv\\lib\\site-packages\\networkx\\drawing\\nx_pylab.py:611: MatplotlibDeprecationWarning: isinstance(..., numbers.Number)\n",
      "  if cb.is_numlike(alpha):\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "kg.draw(ds_gene_enzyme, layout = \"random_layout\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "we see that the actual common enzymes between those obtained from `dis_gen` and those we found on `gene_enzyme` are very few"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'hsa:1859',\n",
       " 'hsa:51111',\n",
       " 'hsa:55870',\n",
       " 'hsa:7204',\n",
       " 'hsa:7994',\n",
       " 'hsa:815',\n",
       " 'hsa:816',\n",
       " 'hsa:9320'}"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "set(ds_genes.keys()) & set(gene_enzyme.nodes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Le'ts download the *enzyme-reaction* graph from **KEGG** for a last step"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "INFO:root:> Downloading reaction-enzyme-link from KEGG at http://rest.kegg.jp/link/reaction/enzyme\n",
      "INFO:root:succesfully downloaded reaction-enzyme-link\n"
     ]
    }
   ],
   "source": [
    "enzyme_reaction = kg.kegg_link_graph(\"enzyme\", \"reaction\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "using the same mechanism as before we get the *enzyme-reaction* graph"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "we can get every node of a particular `nodetype` in a graph using `kg.get_nodes_by_nodetype`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Given a KEGG graph returns all the nodes for a given nodetype\n",
      "    \n",
      "    Parameters\n",
      "    ----------\n",
      "    graph : Graph\n",
      "        input graph, has to be generated via kegg_link_graph()\n",
      "    nodetype : str\n",
      "        nodetype, is generally a <database> KEGG name\n",
      "    return_dict : bool\n",
      "        if True returns a {node : nodetype dict}\n",
      "        \n",
      "    Returns\n",
      "    -------\n",
      "    nodes : list\n",
      "        nodes corresponding to nodetype\n",
      "    nodedict : dict\n",
      "        {nodes: nodetypes}\n",
      "\n",
      "    Example\n",
      "    .......\n",
      "    >>> KEGG_graph = kegg_link_graph(\"hsa\", \"disease\")\n",
      "    >>> nodedict = get_nodes_by_nodetype(KEGG_graph, \"hsa\")\n",
      "    >>> list(nodedict.items())[:5]\n",
      "    [('hsa:7428', 'hsa'),\n",
      "     ('hsa:4233', 'hsa'),\n",
      "     ('hsa:2271', 'hsa'),\n",
      "     ('hsa:201163', 'hsa'),\n",
      "     ('hsa:7030', 'hsa')]\n",
      "\n",
      "    Seealso\n",
      "    -------\n",
      "    kegg_link_graph()\n",
      "        \n"
     ]
    }
   ],
   "source": [
    "print(kg.get_nodes_by_nodetype.__doc__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "ds_enzymes = kg.get_nodes_by_nodetype(ds_gene_enzyme, \"enzyme\", return_dict = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['ec:2.1.1.43',\n",
       " 'ec:2.7.11.17',\n",
       " 'ec:2.3.1.48',\n",
       " 'ec:2.7.12.1',\n",
       " 'ec:2.7.11.1',\n",
       " 'ec:2.3.2.26']"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(ds_enzymes.keys())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "the same `neighbor_graph()` function as before is used to calculated a subgraph of `enzyme_reaction`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "ds_enzyme_reaction = kg.neighbor_graph(enzyme_reaction,\n",
    "                                       ds_enzymes,\n",
    "                                       keep_isolated_nodes = True,\n",
    "                                       name = \"ds_enzyme_reaction\" )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "kg.draw(ds_enzyme_reaction, layout = \"kamada_kawai_layout\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "we can count all the reactions in the graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['rn:R03875',\n",
       " 'rn:R03632',\n",
       " 'rn:R00162',\n",
       " 'rn:R02884',\n",
       " 'rn:R04866',\n",
       " 'rn:R02584',\n",
       " 'rn:R03938',\n",
       " 'rn:R03552',\n",
       " 'rn:R04867']"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ds_reactions = kg.get_nodes_by_nodetype(ds_enzyme_reaction, \"reaction\", return_dict = True)\n",
    "list(ds_reactions.keys())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "we want now to create a projected graph in which we link two enzymes if they appear in the same reaction: we can use the `projected_graph()`function that does exactly that"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculates the projected graph respect to a node list     \n",
      "    Parameters:\n",
      "        :kegg_graph (Graph): input graph, has to be generated via kegg_link_graph()\n",
      "        :nodedict (dict): dict of nodes and nodetypes\n",
      "        :multigraph (bool): if True \n",
      "        :name (str): optional name of the graph\n",
      "        \n",
      "    Returns:\n",
      "        :projected_graph (Graph): projected graph\n",
      "    .. seealso:: kegg_link_graph()\n",
      "    \n"
     ]
    }
   ],
   "source": [
    "print(kg.projected_graph.__doc__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "here we want to project the graph on the enzymes set that we obtain from `ds_gene_enzyme` using `get_nodetype_nodes()`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "ds_enzymes = kg.get_nodes_by_nodetype(ds_gene_enzyme, \"enzyme\", return_dict = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['ec:2.1.1.43',\n",
       " 'ec:2.7.11.17',\n",
       " 'ec:2.3.1.48',\n",
       " 'ec:2.7.12.1',\n",
       " 'ec:2.7.11.1',\n",
       " 'ec:2.3.2.26']"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(ds_enzymes.keys())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "now we can finally project `ds_enzyme_reaction` onto the `ds_enzymes` set to get our enzyme correlation graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "ds_enzyme_enzyme = kg.projected_graph(ds_enzyme_reaction, ds_enzymes, name = \"ds_enzyme_enzyme\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "EdgeView([('rn:R03875', 'ec:2.1.1.43'), ('ec:2.1.1.43', 'rn:R04866'), ('ec:2.1.1.43', 'rn:R04867'), ('ec:2.1.1.43', 'rn:R03938'), ('rn:R03632', 'ec:2.7.11.1'), ('rn:R00162', 'ec:2.7.11.1'), ('rn:R00162', 'ec:2.7.11.17'), ('rn:R00162', 'ec:2.7.12.1'), ('rn:R02884', 'ec:2.7.11.17'), ('rn:R02584', 'ec:2.7.12.1'), ('rn:R03552', 'ec:2.3.1.48')])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ds_enzyme_reaction.edges"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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bxe++OKLxyxdunTlypUr308kEj5jxowee/fuTVxwwQW7Vq1a9f4FF1yw66c//WkvgJUrV76/cuXK9x944IGK008/fffIkSN3X3fddZ8988wzxwC88sorRw8ZMmRv3759qwG2b9+et2TJktUPP/zwum984xun3nvvvZs+/PDD91auXFm0ePHiog0bNuRNmTKl76JFi1a///77H5x99tl7Jk2adGzznr1IW/r3bfBfldFdKF8B1qQtP4boOu4C4FHgK0D3tHX6JuG9F4EX0xYsAr4EfNLCg84JOXHRtrycovTZOI1VVUWivPwLMwS+YO7cuUetWLGic0lJyRCAysrKRO/evauPOOIIHzNmzHaA0tLS3W+88cbRh8ZXXjB+/Pjj58+fv7qgoMDvuOOOT6+66qpTHnjggc2//OUve95yyy0HLxhfccUV2xKJBGefffaeHj167D/33HP3AgwaNGjvmjVrCtauXZu/Zs2awnPPPXcwwP79+620tHRXc567SHOY2VTgQiAfeIho7vzPiGbYVAOXAl8Fern7LLi0X7QsAXSKv+ryHPDXtTx+ZBGceirRhwwPiu8NjDX3DDBH5UTg79jRMs+jIftxdxs9evRnTz75ZEXq4zNmzDg2kYjeMOXl5VFdXW3RPnckrr/++pOnT5++dsCAAfsBTjnllP09e/as/s1vfnPUO++8c+TLL7/8Uc1+CgsLHaBTp07k5+cfLFIlEgmqq6utU6dOftFFF+2YPXv2xy3xnEWaw8xGAd3dvczMOgNLgNXANHefZ2YJd08Cc1M26xb9MQs4GRhQx96rgVeBKXUdvhtR/UcaKCdKOkcf3TKfmm3IfkaNGrXj1Vdf7V5RUZEHsGnTpk6rV6/Or2v9MWPGDBg7duyno0aNOuws/NZbb91y2223nXTVVVd9npfX8NerESNG7F66dGmXFStWFADs3LkzsXz58oIG70CkZRUDZWa2AJgDFABDgfkAcdin2wZvAM9CxtmV84ALgC51rbCtaUMOV04EfnExewsKaNZHhgsKSBYXs7e+9UpLSysnTJhQ8ZWvfGXQoEGDhl5yySWD1q1bd0Rt665evTp/7ty53Z977rmeNRduFy1a1Bnghhtu2L5nz55Ot99++2eNGWe/fv2qn3766f8ZM2bMwEGDBg0tLS0dXF5e3tTZDiLN9R4wz91HuPsIorYI7xFd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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "kg.draw(ds_enzyme_enzyme)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
